Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота №3 Програмування, ч3

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Програмування алгоритмів цифрової обробки сигналів та зображень

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ " Перетворення типів даних" ЗВІТ до лабораторної роботи № 3 з "Програмування. Частина III. Структури даних та алгоритми" МЕТА РОБОТИ Дослідження методів та засобів явного та неявного перетворення типів даних. ВИБІР ІНДИВІДУАЛЬНОГО ЗАВДАННЯ Завдання 1: Визначити, які неявні перетворення типів будуть відбуватись при обчисленнях. З’ясувати, чи відбудуться втрати значимості даних. Хід міркувань підтвердити програмними результатами. В звіти пояснити кожне перетворення і метод, яким воно здійснено. typedef unsigned int type_0; typedef unsigned short int type_1; typedef unsigned long int type_2; typedef signed short int type_3; typedef signed int type_4; typedef signed long int type_5; typedef bool type_6; typedef char type_7; typedef wchar_t type_8; typedef float type_9; typedef double type_10; typedef long double type_11; // позначимо через DN=6 - день народження, MN=2 – місяць народження type_6 x0=0; // замість № підставити значення: DN % 9 type_0 x1=6; // замість № підставити значення: DN % DN type_2 x2=2; // замість № підставити значення: MN % 9 type_2 x3=3; // замість № підставити значення: MN % 13 type_3 x4=4; // замість № підставити значення: (DN * MN) % 9 type_6 x5=5; // замість № підставити значення: DN % 12 type_2 x6=6; // замість № підставити значення: MN % 3 type_0 x7=7; // замість № підставити значення: (DN * MN) % 12 type_6 x8=8; // замість № підставити значення: DN % 13 type_2 x9=9; // замість № підставити значення: MN % 6 type_2 x10=10; // замість № підставити значення: (DN * MN) % 10 type_0 x11=11; // замість № підставити значення: DN % 3 /* 1 */ x1 = x1 – 0xFFFFFFFA; /* 2 */ x3 = ’a’ + x0 – x2; /* 3 */ x7 = x4 + x5 + x6 * 0.1; /* 4 */ x8 = x9 + x10 – x11*10; 1) x1 = x1 – 0xFFFFFFFA x1 має тип unsigned int 0xFFFFFFFA неявно приводиться до типу unsigned int x1 = 610 = 616 0xFFFFFFFA = 429496729010 = FF FF FF FA16 x1 = 610 - 0xFFFFFFFA16 = 610 – 429496729010 = -429496728410 При відніманні утвориться від’ємне число. Unsigned не може мати від’ємних значень, тому у пам’яті число буде зберігатися у доповняльному коді. -429496728410 =111111111111111111111111111101002(прямий код)= 0000 0000 0000 0000 0000 0000 0001 01002(доповняльний)= - FF FF FF FF16(прямий) = 00 00 00 14(доповняльний)16 = 2010 2) x3 = ’a’ + x0 – x2 x2, x3 – unsigned long int ’a’ – char x0 – signed int ‘a’ неявно приводиться до типу x0 (‘a’ = 9710 x0 = 010): 97 + 0 = 9710 x2 неявно приводиться до типу x0. (x2 =210): 97 - 2 = 9510 Після цього значення виразу присвоюється змінній x3(unsigned long int), тому в даному випадку значення не зміниться, але у випадку чисел величини більшої ніж допустима для int втрачається точність. х3 = 9510 3) x7 = x4 + x5 + x6 * 0.1 х4 – signed short int x7 – unsigned int x6 – unsigned long int x5 - bool x6 неявно приводиться до типу double: 6 * 0.1 = 0.6 x5 неявно приводиться до типу x4(signed short int): 4 + 1 = 5 значення виразу x4+x5 неявно приводиться до типу виразу x6*0.1 (double): 5 + 0.6 = 5.6 Після цього значення виразу присвоюється змінній x7(unsigned int), тому значення виразу буде заокругленим та буде дорівнювати 5. x7 = 510 4) x8 = x9 + x10 – x11*10 x8 – bool x9, x10 – unsigned long int x11 – unsigned int 10 набуває типу unsigned int(x11), результат x9 + x10 -> unsigned long int, тоді: 9 + 10 – 11*10 = -91 При відніманні утвориться від’ємне число. Unsigned не може мати від’ємних значень, тому у пам’яті буде зберігатися у доповняльному коді. Тоді значенням виразу буде: 4294967205 (FF FF FF A5) Після цього змінна x8(bool) отримає це значення та приведе його у bool і буде дорівнювати: x8 = 110 Завдання 2 Визначити, які явні і неявні перетворення тип...
Антиботан аватар за замовчуванням

28.05.2019 17:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини